/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pkg1ifxClienteTcp;
//import pkg1ifxArchivos.cifxLogs;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import pkg1ifxClienteTcp.cifxCliente;
import pkg1ifxArchivos.caDatosTemplate;
import pkg1ifxArchivos.cifxLogs;

/**
 *
 * @author strailaparicio
 */
public class caAppBot {
    
    private String snombre="localhost";//El nombre o la direccion IP del servidor
    private int npuerto;
    private String spathtrabajo;
    private Object datogeneral;
    private cifxCliente ocliente = null; 
    private int timeout=60000;
    private caDatosTemplate template;
    private cifxLogs olog = new cifxLogs();
    private String[] srespuesta=null;
    /*public String[] getResultadosAppBot()
    {
        return srespuesta;
    }*/
    public String getResultadoAppBot()//en cadena cc|cc|cc
    {
        String ssalida="";
        if(srespuesta==null)
        {
            if(respuestaSolBot==-9)
            {
                ssalida+="|-9 SE ESTA EJECUTANDO";
            }
            else if(respuestaSolBot==-2)
            {
                ssalida+="|-2 ERROR INESPERADO";
            }
            else if(respuestaSolBot==-1)
            {
                ssalida+="|-1 TRANSACCION NO PROCESADA";
            }            
            else if(respuestaSolBot==0)
            {
                ssalida+="|0 TRANSACCION EN TIMEOUT";
            }
            
        }
        else
        {
            
            for(int i=0;i<srespuesta.length;i++)
            {
                ssalida+="|"+srespuesta[i];
            }
        }
        return ssalida;
    }
    
    /**
     * Funcion que llama la identificacion a un AppBot y espera la respuesta
     * 
     * @param dato template a ser identificado
     * @return arreglo de strings con los resultados
     */
    private int respuestaSolBot=-9;//-9 Ejecutando accion
    //-2 ERROR Inesperado, -1 Transaccion no procesada, 0 Transaccion en TIME OUT, 1 Transaccion Ok
    public int getRespuestaSolApBot()
    {
        return respuestaSolBot;
    }
    public String[] botFenixIdentificar(caDatosTemplate dato)
    {
        
        try
        {
            template=dato;
            ocliente = new cifxCliente(snombre, npuerto,timeout);
            srespuesta = ocliente.botFENIXIdentificar(template);
            respuestaSolBot=ocliente.getRespuestaSolApBot();
            
            
        }
        catch(Exception error)
        {
            olog.outMensaje("caAppBot.botFenixIdentificar: ERROR Exception "+ error.getMessage());
            //"botFENIX-Identificar"
            
        }
        return srespuesta;
        
    }
    public String[] botFenixIdentificar()
    {
        return botFenixIdentificar(template);
    }

    /***
     * 
     * @param dato
     * @return 
     */
    public String[] botFenixVerificar(caDatosTemplate dato)
    {
        //String[] srespuesta=null;
        try
        {
            template=dato;
            ocliente = new cifxCliente(snombre, npuerto,timeout);
            srespuesta = ocliente.botFENIXVerificar(template);
            respuestaSolBot=ocliente.getRespuestaSolApBot();
            
            
        }
        catch(Exception error)
        {
            olog.outMensaje("caAppBot.botFenixVerificar: ERROR Exception "+ error.getMessage());
            //"botFENIX-Identificar"
            
        }
        return srespuesta;
        
    }

    public String[] botFenixInsertar(caDatosTemplate dato)
    {
        //String[] srespuesta=null;
        try
        {
            template=dato;
            ocliente = new cifxCliente(snombre, npuerto,timeout);
            srespuesta = ocliente.botFENIXInsertar(template);
            respuestaSolBot=ocliente.getRespuestaSolApBot();


        }
        catch(Exception error)
        {
            olog.outMensaje("caAppBot.botFenixInsertar: ERROR Exception "+ error.getMessage());
            //"botFENIX-Identificar"

        }
        return srespuesta;

    }
        
    public String[] botFenixInsertar()
    {
        return botFenixInsertar(template);
    }
    public String[] botFenixVerificar()
    {
        return botFenixVerificar(template);
    }
    public void setTemplate(caDatosTemplate dato)
    {
        template=dato;

    }
    public caDatosTemplate getTemplate()
    {
        return template;
    }
    public void setTimeOut(int dato)
    {
        timeout=dato;
    }
    public int getTimeout()
    {
        return timeout;
    }
    public caAppBot(cifxLogs dato)
    {
        olog=dato;
        
    }
    public void setPathTrabajo(String dato)
    {
        spathtrabajo=dato;
    }
    
    /*public void setLog(cifxLogs dato)
    {
        olog=dato;
    }*/
    public void setNombre(String dato)
    {
        snombre=dato;
        
    }
    public String getNombre()
    {
        return snombre;
    }
    public void setPuerto(int dato)
    {
        npuerto=dato;
    
    }
    public int getPuerto()
    {
        return npuerto;
    }
    public void setDato(Object dato)
    {
        datogeneral=dato;
        
    }
    public Object getDato()
    {
        return datogeneral;
    }
    
    
    
}
